/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Main.java
 *
 * Created on 13/10/2014, 01:24:50 PM
 */
package mx.com.ugto.caadi.asistencias.gui;

import java.awt.CardLayout;
import javax.swing.JFrame;
import mx.com.ugto.caadi.asistencias.bean.Actividad;
import mx.com.ugto.caadi.asistencias.bean.Alumno;
import mx.com.ugto.caadi.asistencias.bean.Maestro;

/**
 *
 * @author Maestria
 */
public class Main extends javax.swing.JFrame {

    private CardLayout cl;
    private static Main instancia;

    /** Creates new form Main */
    public Main() {
        initComponents();
        this.setLocationRelativeTo(null);
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        panelRegistrarAlumnos.cargarDatosGenerales();
        cl = (CardLayout) (pnlContenedor.getLayout());
        cl.show(pnlContenedor, "fondo");
        instancia = this;
    }

    public static Main getInstance() {
        if (instancia == null) {
            instancia = new Main();
        }
        return instancia;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        pnlContenedor = new javax.swing.JPanel();
        panelRegistrarAlumnos = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarAlumnos();
        panelBuscarAlumno = new mx.com.ugto.caadi.asistencias.gui.PanelBuscarAlumno();
        panelFondo = new mx.com.ugto.caadi.asistencias.gui.PanelFondo();
        panelEditarAlumnos = new mx.com.ugto.caadi.asistencias.gui.PanelEditarAlumnos();
        panelRegistrarMaestros = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarMaestros();
        panelBuscarMaestro = new mx.com.ugto.caadi.asistencias.gui.PanelBuscarMaestro();
        panelEditarMaestros = new mx.com.ugto.caadi.asistencias.gui.PanelEditarMaestros();
        panelRegistrarActividad = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarActividad();
        panelBuscarActividades = new mx.com.ugto.caadi.asistencias.gui.PanelBuscarActividades();
        panelEditarActividad = new mx.com.ugto.caadi.asistencias.gui.PanelEditarActividad();
        panelRegistrarGrupo = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarGrupo();
        panelBuscarGrupo = new mx.com.ugto.caadi.asistencias.gui.PanelBuscarGrupo();
        panelRegistrarNivel = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarNivel();
        panelRegistrarUsuarios = new mx.com.ugto.caadi.asistencias.gui.PanelRegistrarUsuarios();
        panelDarAltaGrupo = new mx.com.ugto.caadi.asistencias.gui.PanelDarAltaGrupo();
        panelListarGruposEstudio = new mx.com.ugto.caadi.asistencias.gui.PanelListarGruposEstudio();
        panelDarAltaAlumnos = new mx.com.ugto.caadi.asistencias.gui.PanelDarAltaAlumnos();
        menAdministracion = new javax.swing.JMenuBar();
        menArchivo = new javax.swing.JMenu();
        menRegistarAlumno = new javax.swing.JMenuItem();
        menBuscarAlumno = new javax.swing.JMenuItem();
        separador1 = new javax.swing.JPopupMenu.Separator();
        menRegistrarMaestro = new javax.swing.JMenuItem();
        menBuscarMaestro = new javax.swing.JMenuItem();
        separador2 = new javax.swing.JPopupMenu.Separator();
        menRegistrarActividad = new javax.swing.JMenuItem();
        menBuscarActividad = new javax.swing.JMenuItem();
        separador3 = new javax.swing.JPopupMenu.Separator();
        menRegistrarGrupo = new javax.swing.JMenuItem();
        menBuscarGrupo = new javax.swing.JMenuItem();
        separador4 = new javax.swing.JPopupMenu.Separator();
        menRegistrarNivel = new javax.swing.JMenuItem();
        menSeguridad = new javax.swing.JMenu();
        menuRegistrarUsuario = new javax.swing.JMenuItem();
        menAcademico = new javax.swing.JMenu();
        menDarDeAltaGrupo = new javax.swing.JMenuItem();
        menListarGrupos = new javax.swing.JMenuItem();
        separador5 = new javax.swing.JPopupMenu.Separator();
        menDarDeAltaAlumnos = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("mx/com/ugto/caadi/asistencias/resources/vista"); // NOI18N
        setTitle(bundle.getString("titulo")); // NOI18N

        pnlContenedor.setLayout(new java.awt.CardLayout());
        pnlContenedor.add(panelRegistrarAlumnos, "card1");
        pnlContenedor.add(panelBuscarAlumno, "card2");

        javax.swing.GroupLayout panelFondoLayout = new javax.swing.GroupLayout(panelFondo);
        panelFondo.setLayout(panelFondoLayout);
        panelFondoLayout.setHorizontalGroup(
            panelFondoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 674, Short.MAX_VALUE)
        );
        panelFondoLayout.setVerticalGroup(
            panelFondoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 478, Short.MAX_VALUE)
        );

        pnlContenedor.add(panelFondo, "fondo");
        pnlContenedor.add(panelEditarAlumnos, "card3");
        pnlContenedor.add(panelRegistrarMaestros, "card4");
        pnlContenedor.add(panelBuscarMaestro, "card5");
        pnlContenedor.add(panelEditarMaestros, "card6");
        pnlContenedor.add(panelRegistrarActividad, "card7");
        pnlContenedor.add(panelBuscarActividades, "card8");
        pnlContenedor.add(panelEditarActividad, "card9");
        pnlContenedor.add(panelRegistrarGrupo, "card10");
        pnlContenedor.add(panelBuscarGrupo, "card11");
        pnlContenedor.add(panelRegistrarNivel, "card12");
        pnlContenedor.add(panelRegistrarUsuarios, "card13");
        pnlContenedor.add(panelDarAltaGrupo, "card14");
        pnlContenedor.add(panelListarGruposEstudio, "card15");
        pnlContenedor.add(panelDarAltaAlumnos, "card18");

        getContentPane().add(pnlContenedor, java.awt.BorderLayout.CENTER);

        menArchivo.setText("Administración");

        menRegistarAlumno.setText("Registrar alumno");
        menRegistarAlumno.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menRegistarAlumnoActionPerformed(evt);
            }
        });
        menArchivo.add(menRegistarAlumno);

        menBuscarAlumno.setText("Buscar alumno");
        menBuscarAlumno.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menBuscarAlumnoActionPerformed(evt);
            }
        });
        menArchivo.add(menBuscarAlumno);
        menArchivo.add(separador1);

        menRegistrarMaestro.setText("Registrar maestro");
        menRegistrarMaestro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menRegistrarMaestroActionPerformed(evt);
            }
        });
        menArchivo.add(menRegistrarMaestro);

        menBuscarMaestro.setText("Buscar maestro");
        menBuscarMaestro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menBuscarMaestroActionPerformed(evt);
            }
        });
        menArchivo.add(menBuscarMaestro);
        menArchivo.add(separador2);

        menRegistrarActividad.setText("Registrar actividad");
        menRegistrarActividad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menRegistrarActividadActionPerformed(evt);
            }
        });
        menArchivo.add(menRegistrarActividad);

        menBuscarActividad.setText("Buscar actividad");
        menBuscarActividad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menBuscarActividadActionPerformed(evt);
            }
        });
        menArchivo.add(menBuscarActividad);
        menArchivo.add(separador3);

        menRegistrarGrupo.setText("Registrar grupo");
        menRegistrarGrupo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menRegistrarGrupoActionPerformed(evt);
            }
        });
        menArchivo.add(menRegistrarGrupo);

        menBuscarGrupo.setText("Buscar grupo");
        menBuscarGrupo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menBuscarGrupoActionPerformed(evt);
            }
        });
        menArchivo.add(menBuscarGrupo);
        menArchivo.add(separador4);

        menRegistrarNivel.setText("Registrar nivel");
        menRegistrarNivel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menRegistrarNivelActionPerformed(evt);
            }
        });
        menArchivo.add(menRegistrarNivel);

        menAdministracion.add(menArchivo);

        menSeguridad.setText("Seguridad");

        menuRegistrarUsuario.setText("Registrar usuario");
        menuRegistrarUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuRegistrarUsuarioActionPerformed(evt);
            }
        });
        menSeguridad.add(menuRegistrarUsuario);

        menAdministracion.add(menSeguridad);

        menAcademico.setText("Académico");

        menDarDeAltaGrupo.setText("Dar de alta grupo");
        menDarDeAltaGrupo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menDarDeAltaGrupoActionPerformed(evt);
            }
        });
        menAcademico.add(menDarDeAltaGrupo);

        menListarGrupos.setText("Listar grupos inscritos");
        menListarGrupos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menListarGruposActionPerformed(evt);
            }
        });
        menAcademico.add(menListarGrupos);
        menAcademico.add(separador5);

        menDarDeAltaAlumnos.setText("Dar de alta alumnos");
        menAcademico.add(menDarDeAltaAlumnos);

        menAdministracion.add(menAcademico);

        setJMenuBar(menAdministracion);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void menRegistarAlumnoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menRegistarAlumnoActionPerformed
// TODO add your handling code here:
    registrarAlumno();
//    FrameRegistroAlumno registroAlumnos = new FrameRegistroAlumno();
//    jDesktopPane1.add(registroAlumnos);
//    registroAlumnos.cargarDatos();
//    registroAlumnos.setVisible(true);
}//GEN-LAST:event_menRegistarAlumnoActionPerformed

private void menBuscarAlumnoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menBuscarAlumnoActionPerformed
    buscarAlumno();
    //    try {
//        // TODO add your handling code here:
//        FrameBuscarAlumno buscarAlumnos = new FrameBuscarAlumno();
//        jDesktopPane1.add(buscarAlumnos);
//        //    edicionAlumnos.cargarDatos();
//        buscarAlumnos.setVisible(true);
//        buscarAlumnos.setMaximum(true);
//    } catch (PropertyVetoException ex) {
//        ex.printStackTrace();
//    }
}//GEN-LAST:event_menBuscarAlumnoActionPerformed

private void menRegistrarMaestroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menRegistrarMaestroActionPerformed
// TODO add your handling code here:
    registrarMaestro();
}//GEN-LAST:event_menRegistrarMaestroActionPerformed

private void menBuscarMaestroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menBuscarMaestroActionPerformed
// TODO add your handling code here:
    buscarMaestro();
}//GEN-LAST:event_menBuscarMaestroActionPerformed

private void menRegistrarActividadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menRegistrarActividadActionPerformed
// TODO add your handling code here:
    registrarActividad();
}//GEN-LAST:event_menRegistrarActividadActionPerformed

private void menBuscarActividadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menBuscarActividadActionPerformed
// TODO add your handling code here:
    buscarActividad();
}//GEN-LAST:event_menBuscarActividadActionPerformed

private void menRegistrarGrupoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menRegistrarGrupoActionPerformed
// TODO add your handling code here:
    registrarGrupo();
}//GEN-LAST:event_menRegistrarGrupoActionPerformed

private void menBuscarGrupoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menBuscarGrupoActionPerformed
// TODO add your handling code here:
    buscarGrupo();
}//GEN-LAST:event_menBuscarGrupoActionPerformed

private void menRegistrarNivelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menRegistrarNivelActionPerformed
// TODO add your handling code here:
    registrarNivel();
}//GEN-LAST:event_menRegistrarNivelActionPerformed

private void menuRegistrarUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuRegistrarUsuarioActionPerformed
// TODO add your handling code here:
    registrarUsuario();
}//GEN-LAST:event_menuRegistrarUsuarioActionPerformed

private void menDarDeAltaGrupoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menDarDeAltaGrupoActionPerformed
// TODO add your handling code here:
    registrarGrupoEstudio();
}//GEN-LAST:event_menDarDeAltaGrupoActionPerformed

private void menListarGruposActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menListarGruposActionPerformed
// TODO add your handling code here:
    buscarMateriasDadasAlta();
}//GEN-LAST:event_menListarGruposActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Main().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenu menAcademico;
    private javax.swing.JMenuBar menAdministracion;
    private javax.swing.JMenu menArchivo;
    private javax.swing.JMenuItem menBuscarActividad;
    private javax.swing.JMenuItem menBuscarAlumno;
    private javax.swing.JMenuItem menBuscarGrupo;
    private javax.swing.JMenuItem menBuscarMaestro;
    private javax.swing.JMenuItem menDarDeAltaAlumnos;
    private javax.swing.JMenuItem menDarDeAltaGrupo;
    private javax.swing.JMenuItem menListarGrupos;
    private javax.swing.JMenuItem menRegistarAlumno;
    private javax.swing.JMenuItem menRegistrarActividad;
    private javax.swing.JMenuItem menRegistrarGrupo;
    private javax.swing.JMenuItem menRegistrarMaestro;
    private javax.swing.JMenuItem menRegistrarNivel;
    private javax.swing.JMenu menSeguridad;
    private javax.swing.JMenuItem menuRegistrarUsuario;
    private mx.com.ugto.caadi.asistencias.gui.PanelBuscarActividades panelBuscarActividades;
    private mx.com.ugto.caadi.asistencias.gui.PanelBuscarAlumno panelBuscarAlumno;
    private mx.com.ugto.caadi.asistencias.gui.PanelBuscarGrupo panelBuscarGrupo;
    private mx.com.ugto.caadi.asistencias.gui.PanelBuscarMaestro panelBuscarMaestro;
    private mx.com.ugto.caadi.asistencias.gui.PanelDarAltaAlumnos panelDarAltaAlumnos;
    private mx.com.ugto.caadi.asistencias.gui.PanelDarAltaGrupo panelDarAltaGrupo;
    private mx.com.ugto.caadi.asistencias.gui.PanelEditarActividad panelEditarActividad;
    private mx.com.ugto.caadi.asistencias.gui.PanelEditarAlumnos panelEditarAlumnos;
    private mx.com.ugto.caadi.asistencias.gui.PanelEditarMaestros panelEditarMaestros;
    private mx.com.ugto.caadi.asistencias.gui.PanelFondo panelFondo;
    private mx.com.ugto.caadi.asistencias.gui.PanelListarGruposEstudio panelListarGruposEstudio;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarActividad panelRegistrarActividad;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarAlumnos panelRegistrarAlumnos;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarGrupo panelRegistrarGrupo;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarMaestros panelRegistrarMaestros;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarNivel panelRegistrarNivel;
    private mx.com.ugto.caadi.asistencias.gui.PanelRegistrarUsuarios panelRegistrarUsuarios;
    private javax.swing.JPanel pnlContenedor;
    private javax.swing.JPopupMenu.Separator separador1;
    private javax.swing.JPopupMenu.Separator separador2;
    private javax.swing.JPopupMenu.Separator separador3;
    private javax.swing.JPopupMenu.Separator separador4;
    private javax.swing.JPopupMenu.Separator separador5;
    // End of variables declaration//GEN-END:variables

    //--Alumnos
    void registrarAlumno() {
        cl.show(pnlContenedor, "card1");
        panelRegistrarAlumnos.obtenerFoco();
    }

    void editarAlumno(Alumno alumno) {
        cl.show(pnlContenedor, "card3");
        panelEditarAlumnos.cargarDatosGenerales();
        panelEditarAlumnos.setAlumno(alumno);
        panelEditarAlumnos.obtenerFoco();
        panelEditarAlumnos.actualizarVista();
    }

    void buscarAlumno() {
        cl.show(pnlContenedor, "card2");
        panelBuscarAlumno.cargarDatosTabla();
    }

    //--Maestros
    void registrarMaestro() {
        cl.show(pnlContenedor, "card4");
        panelRegistrarMaestros.obtenerFoco();
    }

    void buscarMaestro() {
        cl.show(pnlContenedor, "card5");
        panelBuscarMaestro.cargarDatosTabla();
    }

    void editarMaestro(Maestro maestro) {
        cl.show(pnlContenedor, "card6");
        panelEditarMaestros.setMaestro(maestro);
        panelEditarMaestros.obtenerFoco();
        panelEditarMaestros.actualizarVista();
    }

    //--Actividades
    void registrarActividad() {
        cl.show(pnlContenedor, "card7");
        panelRegistrarActividad.obtenerFoco();
    }

    void buscarActividad() {
        cl.show(pnlContenedor, "card8");
        panelBuscarActividades.cargarDatosTabla();
    }

    void editarActividad(Actividad actividad) {
        cl.show(pnlContenedor, "card9");
        panelEditarActividad.setActividad(actividad);
        panelEditarActividad.obtenerFoco();
        panelEditarActividad.actualizarVista();
    }

    //--Grupos
    void registrarGrupo() {
        cl.show(pnlContenedor, "card10");
        panelRegistrarGrupo.obtenerFoco();
    }

    void buscarGrupo() {
        cl.show(pnlContenedor, "card11");
        panelBuscarGrupo.cargarDatosTabla();
    }

    //--Nivel
    void registrarNivel() {
        cl.show(pnlContenedor, "card12");
        panelRegistrarNivel.obtenerFoco();
    }

    void registrarUsuario() {
        cl.show(pnlContenedor, "card13");
        panelRegistrarUsuarios.cargarDatosGenerales();
        panelRegistrarUsuarios.obtenerFoco();
    }

    //--Grupos de estudio
    void registrarGrupoEstudio() {
        cl.show(pnlContenedor, "card14");
        panelDarAltaGrupo.cargarDatosGenerales();
        panelDarAltaGrupo.obtenerFoco();
    }

    void buscarMateriasDadasAlta() {
        cl.show(pnlContenedor, "card15");
        panelListarGruposEstudio.cargarDatosTabla();
    }
    
//    void darAltaAlumnoss
    
    //--
}
